package com.lgq.cfw.service;

import com.lgq.cfw.bean.TablePermission;
import com.lgq.cfw.bean.TableUser;
import java.util.List;
import org.springframework.stereotype.Service;

/**
 * @author Lin
 * @date 2019-02-04 15:59
 **/
public interface UserService {

  /**
   * 注册功能
   * @param tableUser 前端获取的用户
   * @return 是否注册成功
   */
  boolean register(TableUser tableUser);

  /**
   * 校验用户账号是否重复存在
   * @param loginacct 获取的账号
   * @return 布尔
   */
  boolean checkAccount(String loginacct);

  /**
   * 管理登录
   * @param loginacct 账号
   * @param userpswd 密码
   * @return 是否登录成功
   */
  boolean login(String loginacct,String userpswd);


  /**
   * 获取session域中的值
   * @param loginName 获取到的名字
   * @return 字符串是否为空
   */
  boolean getName(String loginName);

  /**
   * 获取权限
   * @param loginacct 传入的登录账号
   * @return 权限的集合
   */
  List<TablePermission> getAllAuthority(String loginacct);

  /**
   * 获取所有用户信息
   * @return 用户信息的集合
   */
  List<TableUser> getAllUser();

  /**
   * 通过条件查询用户信息
   * @param searchInformation 查询条件
   * @return 用户信息
   */
  List<TableUser> searchUserByCriteria(String searchInformation);

  /**
   * 删除用户
   * @param userId 用户ID
   * @return 是否删除成功
   */
  boolean deleteUserById(Integer userId);

  /**
   * 批量删除用户
   * @param deleteIdList 传入list
   * @return 是否删除成功
   */
  boolean batchDeleteUser(List<Integer> deleteIdList);

  /**
   * 获取user信息
   * @param userId 用户id
   * @return 用户信息
   */
  TableUser getUserById(Integer userId);

  /**
   * 更新用户信息
   * @param tableUser 传入的用户
   */
  void updateUser(TableUser tableUser);
}
